It is understood that future operating systems will require Graphic Processing Units (GPUs) to be able to support virtual memory. Therefore, GPUs will no longer be limited to the physical amount of directly connected video-memory or accessible system memory that can be allocated to them. As such, video memory becomes a virtualized resource that the operating system may page in on demand from one or more external storage devices such as disk drives.
When supporting virtual memory, it is understood that the GPU can request data that is not currently within video-memory, thereby causing the GPU to experience a page miss. In response, a request is sent to a Central Processing Unit (CPU) to initiate the fetching of the desired page from disk memory, which has such a significant latency that it can adversely affect the performance of the GPU. Therefore, servicing virtual page misses becomes a potentially severe bottleneck. While traditionally GPUs are able to hide the memory latency of an internal cache miss, e.g., by building long graphics pipes and having many pixels in flight at the same time, it is unrealistic to expect GPUs to build up to the point where it becomes possible to hide the latency of a virtual memory page miss because page-in times from disk are too long for that to be practically feasible.
Regardless, applications involving graphics are going to take advantage of the virtual memory model. As such, the GPU is expected to incur the occasional virtual page miss with potentially disastrous performance breakdowns to the GPU as a consequence.